/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managers;

import conexionBD.ConexionServidor;
import java.io.Serializable;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author olvarey
 */
@ManagedBean
@SessionScoped
public class managerModificarSolicitud implements Serializable {

    /** Creates a new instance of managerModificarSolicitud */
    public static Integer numeroSolicitud;
    //variables para la el ids necesarios para la actualizacion
    private String idInmueble;
    private int idColindante;
    private int idPropietario;
    private int idResponsable;
    private int id_solicitante;
    //Variables para datos solicitante
    private String primerNombreSolicitante;
    private String segundoNombreSolicitante;
    private String primerApellidoSolicitante;
    private String segundoApellidoSolicitante;
    private Integer duiSolicitante;
    private String telefonoResidenciaSolicitante;
    private String telefonoOficinaSolicitante;
    private String telefonoFaxCelularSolicitante;
    //Variables para valores seleccionados: departamento, municipio y persona que solicita -- Solicitante
    private int departamentoSolicitanteSeleccionado;
    private int municipioSolicitanteSeleccionado;
    //Variables para tipo de intervencion
    private int tipoIntervencionSeleccionado;
    //Variables para datos del inmueble
    private String direccionInmueble;
    //Variables para los valores seleccionados: departamento y municipio -- Inmueble
    private int departamentoInmuebleSeleccionado;
    private int municipioInmuebleSeleccionado;
    //Variables para los usos
//    private String usoOriginal;
//    private String usoActual;
//    private String usoDestinado;
    //int
    private int usoOsriginalSelec;
    private int usoActualSelec;
    private int usoDestinoSelec;
    private String matriculaCNR;
    private String nombreConstructorDisenador;
    private String fechaConstruccion;
    //Variables para datos Colindante
    private String colindanteNorte;
    private String colindanteSur;
    private String colindanteEste;
    private String colindanteOeste;
    //Variables para el propietario
    private String primerNombrePropietario;
    private String segundoNombrePropietario;
    private String primerApellidoPropietario;
    private String segundoApellidoPropietario;
    private Integer duiPropietario;
    private String telefonoResidenciaPropietario;
    private String telefonoOficinaPropietario;
    private String telefonoFaxCelularPropietario;
    private String emailPropietario;
    private String direccionPropietario;
    //Variables para los valores seleccionados: departamento y municipio -- Propietario
    private int departamentoPropietarioSeleccionado;
    private int municipioPropietarioSeleccionado;
    //Variables para profesional responsable
    private String primerNombreResponsable;
    private String segundoNombreResponsable;
    private String primerApellidoResponsable;
    private String segundoApellidoResponsable;
    private Integer duiResponsable;
    private String telefonoResidenciaResponsable;
    private String telefonoOficinaResponsable;
    private String telefonoFaxCelularResponsable;
    private String numeroRegistroResponsable;
    private String emailResponsable;
    private String direccionResponsable;
    //Variables para los valores seleccionados: departamento y municipio y profesion -- Profesional responsable
    private int departamentoResponsableSeleccionado;
    private int municipioResponsableSeleccionado;
    private int profesionResponsableSeleccionada;
    FacesContext context;

    public managerModificarSolicitud() {
    }

    public int getDepartamentoSolicitanteSeleccionado() {
        return departamentoSolicitanteSeleccionado;
    }

    public void setDepartamentoSolicitanteSeleccionado(int departamentoSolicitanteSeleccionado) {
        this.departamentoSolicitanteSeleccionado = departamentoSolicitanteSeleccionado;
    }

    public int getMunicipioSolicitanteSeleccionado() {
        return municipioSolicitanteSeleccionado;
    }

    public void setMunicipioSolicitanteSeleccionado(int municipioSolicitanteSeleccionado) {
        this.municipioSolicitanteSeleccionado = municipioSolicitanteSeleccionado;
    }

    public String getColindanteEste() {
        return colindanteEste;
    }

    public void setColindanteEste(String colindanteEste) {
        this.colindanteEste = colindanteEste;
    }

    public String getColindanteNorte() {
        return colindanteNorte;
    }

    public void setColindanteNorte(String colindanteNorte) {
        this.colindanteNorte = colindanteNorte;
    }

    public String getColindanteOeste() {
        return colindanteOeste;
    }

    public void setColindanteOeste(String colindanteOeste) {
        this.colindanteOeste = colindanteOeste;
    }

    public String getColindanteSur() {
        return colindanteSur;
    }

    public void setColindanteSur(String colindanteSur) {
        this.colindanteSur = colindanteSur;
    }

    public String getDireccionInmueble() {
        return direccionInmueble;
    }

    public void setDireccionInmueble(String direccionInmueble) {
        this.direccionInmueble = direccionInmueble;
    }

    public String getDireccionPropietario() {
        return direccionPropietario;
    }

    public void setDireccionPropietario(String direccionPropietario) {
        this.direccionPropietario = direccionPropietario;
    }

    public String getDireccionResponsable() {
        return direccionResponsable;
    }

    public void setDireccionResponsable(String direccionResponsable) {
        this.direccionResponsable = direccionResponsable;
    }

    public Integer getDuiPropietario() {
        return duiPropietario;
    }

    public void setDuiPropietario(Integer duiPropietario) {
        this.duiPropietario = duiPropietario;
    }

    public Integer getDuiResponsable() {
        return duiResponsable;
    }

    public void setDuiResponsable(Integer duiResponsable) {
        this.duiResponsable = duiResponsable;
    }

    public Integer getDuiSolicitante() {
        return duiSolicitante;
    }

    public void setDuiSolicitante(Integer duiSolicitante) {
        this.duiSolicitante = duiSolicitante;
    }

    public String getEmailPropietario() {
        return emailPropietario;
    }

    public void setEmailPropietario(String emailPropietario) {
        this.emailPropietario = emailPropietario;
    }

    public String getEmailResponsable() {
        return emailResponsable;
    }

    public void setEmailResponsable(String emailResponsable) {
        this.emailResponsable = emailResponsable;
    }

    public String getFechaConstruccion() {
        return fechaConstruccion;
    }

    public void setFechaConstruccion(String fechaConstruccion) {
        this.fechaConstruccion = fechaConstruccion;
    }

    public String getMatriculaCNR() {
        return matriculaCNR;
    }

    public void setMatriculaCNR(String matriculaCNR) {
        this.matriculaCNR = matriculaCNR;
    }

    public String getNombreConstructorDisenador() {
        return nombreConstructorDisenador;
    }

    public void setNombreConstructorDisenador(String nombreConstructorDisenador) {
        this.nombreConstructorDisenador = nombreConstructorDisenador;
    }

    public String getNumeroRegistroResponsable() {
        return numeroRegistroResponsable;
    }

    public void setNumeroRegistroResponsable(String numeroRegistroResponsable) {
        this.numeroRegistroResponsable = numeroRegistroResponsable;
    }

    public Integer getNumeroSolicitud() {
        return numeroSolicitud;
    }

    public void setNumeroSolicitud(Integer numeroSolicitud) {
        this.numeroSolicitud = numeroSolicitud;
    }

    public String getPrimerApellidoPropietario() {
        return primerApellidoPropietario;
    }

    public void setPrimerApellidoPropietario(String primerApellidoPropietario) {
        this.primerApellidoPropietario = primerApellidoPropietario;
    }

    public String getPrimerApellidoResponsable() {
        return primerApellidoResponsable;
    }

    public void setPrimerApellidoResponsable(String primerApellidoResponsable) {
        this.primerApellidoResponsable = primerApellidoResponsable;
    }

    public String getPrimerApellidoSolicitante() {
        return primerApellidoSolicitante;
    }

    public void setPrimerApellidoSolicitante(String primerApellidoSolicitante) {
        this.primerApellidoSolicitante = primerApellidoSolicitante;
    }

    public String getPrimerNombrePropietario() {
        return primerNombrePropietario;
    }

    public void setPrimerNombrePropietario(String primerNombrePropietario) {
        this.primerNombrePropietario = primerNombrePropietario;
    }

    public String getPrimerNombreResponsable() {
        return primerNombreResponsable;
    }

    public void setPrimerNombreResponsable(String primerNombreResponsable) {
        this.primerNombreResponsable = primerNombreResponsable;
    }

    public String getPrimerNombreSolicitante() {
        return primerNombreSolicitante;
    }

    public void setPrimerNombreSolicitante(String primerNombreSolicitante) {
        this.primerNombreSolicitante = primerNombreSolicitante;
    }

    public String getSegundoApellidoPropietario() {
        return segundoApellidoPropietario;
    }

    public void setSegundoApellidoPropietario(String segundoApellidoPropietario) {
        this.segundoApellidoPropietario = segundoApellidoPropietario;
    }

    public String getSegundoApellidoResponsable() {
        return segundoApellidoResponsable;
    }

    public void setSegundoApellidoResponsable(String segundoApellidoResponsable) {
        this.segundoApellidoResponsable = segundoApellidoResponsable;
    }

    public String getSegundoApellidoSolicitante() {
        return segundoApellidoSolicitante;
    }

    public void setSegundoApellidoSolicitante(String segundoApellidoSolicitante) {
        this.segundoApellidoSolicitante = segundoApellidoSolicitante;
    }

    public String getSegundoNombrePropietario() {
        return segundoNombrePropietario;
    }

    public void setSegundoNombrePropietario(String segundoNombrePropietario) {
        this.segundoNombrePropietario = segundoNombrePropietario;
    }

    public String getSegundoNombreResponsable() {
        return segundoNombreResponsable;
    }

    public void setSegundoNombreResponsable(String segundoNombreResponsable) {
        this.segundoNombreResponsable = segundoNombreResponsable;
    }

    public String getSegundoNombreSolicitante() {
        return segundoNombreSolicitante;
    }

    public void setSegundoNombreSolicitante(String segundoNombreSolicitante) {
        this.segundoNombreSolicitante = segundoNombreSolicitante;
    }

    public String getTelefonoFaxCelularSolicitante() {
        return telefonoFaxCelularSolicitante;
    }

    public void setTelefonoFaxCelularSolicitante(String telefonoFaxCelularSolicitante) {
        this.telefonoFaxCelularSolicitante = telefonoFaxCelularSolicitante;
    }

    public String getTelefonoOficinaSolicitante() {
        return telefonoOficinaSolicitante;
    }

    public void setTelefonoOficinaSolicitante(String telefonoOficinaSolicitante) {
        this.telefonoOficinaSolicitante = telefonoOficinaSolicitante;
    }

    public String getTelefonoResidenciaSolicitante() {
        return telefonoResidenciaSolicitante;
    }

    public void setTelefonoResidenciaSolicitante(String telefonoResidenciaSolicitante) {
        this.telefonoResidenciaSolicitante = telefonoResidenciaSolicitante;
    }

    public String getTelefonoFaxCelularPropietario() {
        return telefonoFaxCelularPropietario;
    }

    public void setTelefonoFaxCelularPropietario(String telefonoFaxCelularPropietario) {
        this.telefonoFaxCelularPropietario = telefonoFaxCelularPropietario;
    }

    public String getTelefonoFaxCelularResponsable() {
        return telefonoFaxCelularResponsable;
    }

    public void setTelefonoFaxCelularResponsable(String telefonoFaxCelularResponsable) {
        this.telefonoFaxCelularResponsable = telefonoFaxCelularResponsable;
    }

    public String getTelefonoOficinaPropietario() {
        return telefonoOficinaPropietario;
    }

    public void setTelefonoOficinaPropietario(String telefonoOficinaPropietario) {
        this.telefonoOficinaPropietario = telefonoOficinaPropietario;
    }

    public String getTelefonoOficinaResponsable() {
        return telefonoOficinaResponsable;
    }

    public void setTelefonoOficinaResponsable(String telefonoOficinaResponsable) {
        this.telefonoOficinaResponsable = telefonoOficinaResponsable;
    }

    public String getTelefonoResidenciaPropietario() {
        return telefonoResidenciaPropietario;
    }

    public void setTelefonoResidenciaPropietario(String telefonoResidenciaPropietario) {
        this.telefonoResidenciaPropietario = telefonoResidenciaPropietario;
    }

    public String getTelefonoResidenciaResponsable() {
        return telefonoResidenciaResponsable;
    }

    public void setTelefonoResidenciaResponsable(String telefonoResidenciaResponsable) {
        this.telefonoResidenciaResponsable = telefonoResidenciaResponsable;
    }

    public int getTipoIntervencionSeleccionado() {
        return tipoIntervencionSeleccionado;
    }

    public void setTipoIntervencionSeleccionado(int tipoIntervencionSeleccionado) {
        this.tipoIntervencionSeleccionado = tipoIntervencionSeleccionado;
    }

    public int getDepartamentoInmuebleSeleccionado() {
        return departamentoInmuebleSeleccionado;
    }

    public void setDepartamentoInmuebleSeleccionado(int departamentoInmuebleSeleccionado) {
        this.departamentoInmuebleSeleccionado = departamentoInmuebleSeleccionado;
    }

    public int getMunicipioInmuebleSeleccionado() {
        return municipioInmuebleSeleccionado;
    }

    public void setMunicipioInmuebleSeleccionado(int municipioInmuebleSeleccionado) {
        this.municipioInmuebleSeleccionado = municipioInmuebleSeleccionado;
    }

    public int getDepartamentoPropietarioSeleccionado() {
        return departamentoPropietarioSeleccionado;
    }

    public void setDepartamentoPropietarioSeleccionado(int departamentoPropietarioSeleccionado) {
        this.departamentoPropietarioSeleccionado = departamentoPropietarioSeleccionado;
    }

    public int getDepartamentoResponsableSeleccionado() {
        return departamentoResponsableSeleccionado;
    }

    public void setDepartamentoResponsableSeleccionado(int departamentoResponsableSeleccionado) {
        this.departamentoResponsableSeleccionado = departamentoResponsableSeleccionado;
    }

    public int getMunicipioPropietarioSeleccionado() {
        return municipioPropietarioSeleccionado;
    }

    public void setMunicipioPropietarioSeleccionado(int municipioPropietarioSeleccionado) {
        this.municipioPropietarioSeleccionado = municipioPropietarioSeleccionado;
    }

    public int getMunicipioResponsableSeleccionado() {
        return municipioResponsableSeleccionado;
    }

    public void setMunicipioResponsableSeleccionado(int municipioResponsableSeleccionado) {
        this.municipioResponsableSeleccionado = municipioResponsableSeleccionado;
    }

    public int getProfesionResponsableSeleccionada() {
        return profesionResponsableSeleccionada;
    }

    public void setProfesionResponsableSeleccionada(int profesionResponsableSeleccionada) {
        this.profesionResponsableSeleccionada = profesionResponsableSeleccionada;
    }

    public int getUsoActualSelec() {
        return usoActualSelec;
    }

    public void setUsoActualSelec(int usoActualSelec) {
        this.usoActualSelec = usoActualSelec;
    }

    public int getUsoDestinoSelec() {
        return usoDestinoSelec;
    }

    public void setUsoDestinoSelec(int usoDestinoSelec) {
        this.usoDestinoSelec = usoDestinoSelec;
    }

    public int getUsoOsriginalSelec() {
        return usoOsriginalSelec;
    }

    public void setUsoOsriginalSelec(int usoOsriginalSelec) {
        this.usoOsriginalSelec = usoOsriginalSelec;
    }

    public String getIdInmueble() {
        return idInmueble;
    }

    public void setIdInmueble(String idInmueble) {
        this.idInmueble = idInmueble;
    }

    public int getIdColindante() {
        return idColindante;
    }

    public void setIdColindante(int idColindante) {
        this.idColindante = idColindante;
    }

    public int getidPropietario() {
        return idPropietario;
    }

    public void setidPropietario(int idPropietario) {
        this.idPropietario = idPropietario;
    }

    public int getidResponsable() {
        return idResponsable;
    }

    public void setidResponsable(int idResponsable) {
        this.idResponsable = idResponsable;
    }

    public int getId_solicitante() {
        return id_solicitante;
    }

    public void setId_solicitante(int id_solicitante) {
        this.id_solicitante = id_solicitante;
    }

     public Boolean hayResultados() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        ResultSet rs = null;
        Boolean isNotEmpty = null;
        try {
            Connection con = miConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from vista_solicitud where idingresosol = ?");
            ps.setInt(1, numeroSolicitud);
            rs = ps.executeQuery();
            isNotEmpty = rs.next();
            rs.close();
            ps.close();
            con.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return isNotEmpty;
    }

      public String buscandoInfo() throws Exception {
        String destino = null;
        if (hayResultados()) {
            limpiar();
            buscarParaModificar();
        } else {
            limpiar();
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"BUSQUEDA SOLICITUD", "La solicitud ingresada no existe"));
        }
        return destino;
    }

    public void buscarParaModificar() {
        ConexionServidor miConexion = new ConexionServidor();
        try {
            Connection con = miConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from vista_solicitud where idingresosol = ?");
            ps.setInt(1, numeroSolicitud);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                //Extraccion de informacion de solicitante
                primerNombreSolicitante = rs.getString("primernombre_sol");
                segundoNombreSolicitante = rs.getString("segundonombre_sol");
                primerApellidoSolicitante = rs.getString("primerapellido_sol");
                segundoApellidoSolicitante = rs.getString("segundoapellido_sol");
                duiSolicitante = rs.getInt("dui_sol");
                telefonoResidenciaSolicitante = rs.getString("telresidencia_sol");
                telefonoFaxCelularSolicitante = rs.getString("telefax_sol");
                telefonoOficinaSolicitante = rs.getString("teloficina_sol");
                //departamento y municipio q bienen de la base sobre el solicitante
                departamentoSolicitanteSeleccionado = rs.getInt("iddepto_soli");
                municipioSolicitanteSeleccionado = rs.getInt("idmuni_soli");
                //Extraccion de informacion tipo de intervencion
                tipoIntervencionSeleccionado = rs.getInt("idintervencion");
                //Extraccion de informacion de inmueble
                direccionInmueble = rs.getString("direccion_inm");
                //Extracion del departamento y municipio sobre inmueble
                departamentoInmuebleSeleccionado = rs.getInt("iddepto_inm");
                municipioInmuebleSeleccionado = rs.getInt("idmuni_inm");
                //observar comportamiento
                usoOsriginalSelec = rs.getInt("iduso_suelo_original");
                usoActualSelec = rs.getInt("iduso_suelo_actual");
                usoDestinoSelec = rs.getInt("iduso_suelo_destinado");
                matriculaCNR = rs.getString("matriculacnr");
                colindanteNorte = rs.getString("alnorte");
                colindanteSur = rs.getString("alsur");
                colindanteEste = rs.getString("aleste");
                colindanteOeste = rs.getString("aloeste");
                nombreConstructorDisenador = rs.getString("constructor");
                fechaConstruccion = rs.getString("fechaconstruccion");
                //Extracccion de informacion de propietario
                primerNombrePropietario = rs.getString("primernombre_pro");
                segundoNombrePropietario = rs.getString("segundonombre_pro");
                primerApellidoPropietario = rs.getString("primerapellido_pro");
                segundoApellidoPropietario = rs.getString("segundoapellido_pro");
                duiPropietario = rs.getInt("dui_pro");
                telefonoResidenciaPropietario = rs.getString("telresidencia_pro");
                telefonoOficinaPropietario = rs.getString("teloficina_pro");
                telefonoFaxCelularPropietario = rs.getString("telefax_pro");
                //extraccion de municipio y departamento seleccionado
                departamentoPropietarioSeleccionado = rs.getInt("iddepto_prop");
                municipioPropietarioSeleccionado = rs.getInt("idmuni_pro");
                emailPropietario = rs.getString("email_pro");
                direccionPropietario = rs.getString("direccion_pro");
                //Extraccion de informacion del profesional responsable
                primerNombreResponsable = rs.getString("primernombre_resp");
                segundoNombreResponsable = rs.getString("segundonombre_resp");
                primerApellidoResponsable = rs.getString("primerapellido_resp");
                segundoApellidoResponsable = rs.getString("segundoapellido_resp");
                duiResponsable = rs.getInt("dui_resp");
                telefonoResidenciaResponsable = rs.getString("telresidencia_resp");
                telefonoOficinaResponsable = rs.getString("teloficina_resp");
                telefonoFaxCelularResponsable = rs.getString("telefax_resp");
                //municipio y departamento sobre el responsable
                municipioResponsableSeleccionado = rs.getInt("idmuni_resp");
                departamentoResponsableSeleccionado = rs.getInt("iddepto_resp");
                //informacion sobre la profesion del responsable
                profesionResponsableSeleccionada = rs.getInt("idprofesion");
                numeroRegistroResponsable = rs.getString("registro_resp");
                emailResponsable = rs.getString("email_resp");
                direccionResponsable = rs.getString("direccion_resp");
                // ides para la actualizacion
                idInmueble = rs.getString("idinmueble");
                idColindante = rs.getInt("idcolindante");
                idPropietario = rs.getInt("idpropietario");
                idResponsable = rs.getInt("idresponsable");
                id_solicitante = rs.getInt("idsolicitante");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

    }

    //Metodo para actualizar la informacion de la solicitud
    public String guardarInformacion() {
        String destino = "regresacrear";
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call actualizasolicitudfuera(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting the parameters to be catched by the stored procedure
            cs.setString(1, idInmueble);
            cs.setInt(2, departamentoInmuebleSeleccionado);
            cs.setInt(3, municipioInmuebleSeleccionado);
            cs.setString(4, direccionInmueble);
            cs.setString(5, matriculaCNR);
            cs.setString(6, nombreConstructorDisenador);
            cs.setString(7, fechaConstruccion);
            cs.setInt(8, idColindante);
            cs.setString(9, colindanteNorte);
            cs.setString(10, colindanteSur);
            cs.setString(11, colindanteEste);
            cs.setString(12, colindanteOeste);
            cs.setInt(13, idPropietario);
            cs.setInt(14, departamentoPropietarioSeleccionado);
            cs.setInt(15, municipioPropietarioSeleccionado);
            cs.setString(16, primerNombrePropietario);
            cs.setString(17, segundoNombrePropietario);
            cs.setString(18, primerApellidoPropietario);
            cs.setString(19, segundoApellidoPropietario);
            cs.setString(20, direccionPropietario);
            cs.setString(21, telefonoResidenciaPropietario);
            cs.setString(22, telefonoOficinaPropietario);
            cs.setString(23, telefonoFaxCelularPropietario);
            cs.setInt(24, duiPropietario);
            cs.setString(25, emailPropietario);
            cs.setInt(26, idResponsable);
            cs.setInt(27, departamentoResponsableSeleccionado);
            cs.setInt(28, municipioResponsableSeleccionado);
            cs.setString(29, primerNombreResponsable);
            cs.setString(30, segundoNombreResponsable);
            cs.setString(31, primerApellidoResponsable);
            cs.setString(32, segundoApellidoResponsable);
            cs.setString(33, direccionResponsable);
            cs.setString(34, telefonoResidenciaResponsable);
            cs.setString(35, telefonoOficinaResponsable);
            cs.setString(36, telefonoFaxCelularResponsable);
            cs.setInt(37, duiResponsable);
            cs.setString(38, emailResponsable);
            cs.setString(39, numeroRegistroResponsable);
            cs.setInt(40, profesionResponsableSeleccionada);
            cs.setInt(41, id_solicitante);
            cs.setInt(42, departamentoSolicitanteSeleccionado);
            cs.setInt(43, municipioSolicitanteSeleccionado);
            cs.setString(44, primerNombreSolicitante);
            cs.setString(45, segundoNombreSolicitante);
            cs.setString(46, primerApellidoSolicitante);
            cs.setString(47, segundoApellidoSolicitante);
            cs.setInt(48, duiSolicitante);
            cs.setString(49, telefonoResidenciaSolicitante);
            cs.setString(50, telefonoFaxCelularSolicitante);
            cs.setString(51, telefonoOficinaSolicitante);
            cs.setInt(52, usoOsriginalSelec);
            cs.setInt(53, usoDestinoSelec);
            cs.setInt(54, usoActualSelec);
            cs.setString(55, ""); //agragar el campo de observacionesn para el uso actual
            cs.setInt(56, numeroSolicitud);
            cs.setInt(57, tipoIntervencionSeleccionado);
            //ejecucion del proceso almacenado
            cs.execute();
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();
            limpiar();

        } catch (Exception e) {
            destino = null;
            System.out.println(e.getMessage());
        }
        return destino;
    }

    //Metodo que formatea la salida de los campos de telefono
    public Integer formatearNumeroTelefono(Integer valorDB) {
        Integer numeroFormateado;
        if (valorDB == 0) {
            numeroFormateado = null;
        } else {
            numeroFormateado = valorDB;
        }
        return numeroFormateado;
    }

    public List<SelectItem> getListaDeptos() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> departamentos = new ArrayList<SelectItem>();
        departamentos.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select * from departamento");
            while (rs.next()) {
                departamentos.add(new SelectItem(rs.getInt("iddepartamento"), rs.getString("nombredepartamento")));
            }
            rs.close();
            st.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return departamentos;
    }

    public List<SelectItem> getListaMunicipiosFiltradosSolicitante() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from municipio where iddepartamento = ?");
            ps.setInt(1, departamentoSolicitanteSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                municipios.add(new SelectItem(rs.getInt("idmunicipio"), rs.getString("nombremunicipio")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return municipios;
    }

    public List<SelectItem> getListaTiposIntervencion() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> tiposIntervencion = new ArrayList<SelectItem>();
        tiposIntervencion.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from intervencion");
//          Lineas utilizadas cuando se mandan parametros
//          PreparedStatement ps = con.prepareStatement("select * from municipio where iddepartamento = ?");
//            ps.setInt(1, tipoIntervencionSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                tiposIntervencion.add(new SelectItem(rs.getInt("idintervencion"), rs.getString("tipointervencion")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return tiposIntervencion;
    }

    public List<SelectItem> getListaProfesiones() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> listaProfesiones = new ArrayList<SelectItem>();
        listaProfesiones.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from profesion");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                listaProfesiones.add(new SelectItem(rs.getInt("idprofesion"), rs.getString("nombreprofesion")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return listaProfesiones;
    }

    public List<SelectItem> getListaMunicipiosFiltradosInmueble() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from municipio where iddepartamento = ?");
            ps.setInt(1, departamentoInmuebleSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                municipios.add(new SelectItem(rs.getInt("idmunicipio"), rs.getString("nombremunicipio")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return municipios;
    }

    public List<SelectItem> getListaMunicipiosFiltradosPropietario() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from municipio where iddepartamento = ?");
            ps.setInt(1, departamentoPropietarioSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                municipios.add(new SelectItem(rs.getInt("idmunicipio"), rs.getString("nombremunicipio")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return municipios;
    }

    public List<SelectItem> getListaMunicipiosFiltradosResponsable() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from municipio where iddepartamento = ?");
            ps.setInt(1, departamentoResponsableSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                municipios.add(new SelectItem(rs.getInt("idmunicipio"), rs.getString("nombremunicipio")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return municipios;
    }

    public List<SelectItem> getListaUsoSuelo() {
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> listaUsoSuelo = new ArrayList<SelectItem>();
        listaUsoSuelo.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from uso_suelo");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                listaUsoSuelo.add(new SelectItem(rs.getInt("iduso_suelo"), rs.getString("nombreuso")));
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        return listaUsoSuelo;
    }

    public void limpiar() {
        //Limpiar datos responsable
        primerNombreResponsable = "";
        segundoNombreResponsable = "";
        primerApellidoResponsable = "";
        segundoApellidoResponsable = "";
        duiResponsable = 0;
        telefonoResidenciaResponsable = "";
        telefonoOficinaResponsable = "";
        telefonoFaxCelularResponsable = "";
        departamentoResponsableSeleccionado = 0;
        municipioResponsableSeleccionado = 0;
        profesionResponsableSeleccionada = 0;
        numeroRegistroResponsable = "";
        //Limpiar datos propiertario
        primerNombrePropietario = "";
        segundoNombrePropietario = "";
        primerApellidoPropietario = "";
        segundoApellidoPropietario = "";
        duiPropietario = 0;
        telefonoResidenciaPropietario = "";
        telefonoOficinaPropietario = "";
        telefonoFaxCelularPropietario = "";
        departamentoPropietarioSeleccionado = 0;
        municipioPropietarioSeleccionado = 0;
        emailPropietario = "";
        direccionPropietario = "";
        //Limpiar datos solicitante
        primerNombreSolicitante = "";
        segundoNombreSolicitante = "";
        primerApellidoSolicitante = "";
        segundoApellidoSolicitante = "";
        duiSolicitante = 0;
        telefonoResidenciaSolicitante = "";
        telefonoOficinaSolicitante = "";
        telefonoFaxCelularSolicitante = "";
        departamentoSolicitanteSeleccionado = 0;
        municipioSolicitanteSeleccionado = 0;
        tipoIntervencionSeleccionado = 0;
        //Limpiar datos inmueble
        direccionInmueble = "";
        departamentoInmuebleSeleccionado = 0;
        municipioInmuebleSeleccionado = 0;
        usoOsriginalSelec = 0;
        usoDestinoSelec = 0;
        usoActualSelec = 0;
        matriculaCNR = "";
        colindanteNorte = "";
        colindanteSur = "";
        colindanteEste = "";
        nombreConstructorDisenador = "";
        fechaConstruccion = "";
    }
}
